package kr.co.mustgo.util;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

/*JsonSerializer
 * JSON으로 변환할 Java Data가 원하는 형태로 변환 도지 않을 경우 만드는 변환기 역할 클래스
 * 1. JsonSerializer<DataType>를 extends - DataType : 변환할  JavaDataType
 * 2. serialize()를 overriding - 변환 로직을 구현
 * 
 * 	- Domain Object @jsonSerialize(using=JsonSerializer클래스객체) 지정
 */
public class DateFormatJSONSerializer extends JsonSerializer<Date>{

	@Override
	public void serialize(Date value, JsonGenerator gen, SerializerProvider provider)
			throws IOException, JsonProcessingException {
		//Json 데이타와 java 데이타를 동기화 시켜준다.
		//JsonGenerator의 변수는 변환된 값을 JSON 객체로 출력해준다.
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
		String date = sdf.format(value);//Date value -> 원하는 포멧의 String(문자열)
		gen.writeString(date);//json 값으로 출력 - get.writeXXX(변환한 값)
	}

}



















